<template>
  <!-- 商品详情 -->
  <div class="content banxin">
    <div class="tanxin">
      <main class="tanxin">
        <div class="mian-l">
          <div class="bigimg">
            <img
              :src="'https://sc.wolfcode.cn' + productInfo.coverImg"
              width="100%"
              alt=""
            />
          </div>
          <ul class="smallimg tanxin">
            <li
              @click="sClick(index, item.src)"
              :class="smallimgindex == index ? 'active' : ''"
              v-for="(item, index) in productInfo.imgAltas"
              :key="index"
            >
              <img
                width="100%"
                :src="'https://sc.wolfcode.cn' + item.src"
                alt=""
              />
            </li>
          </ul>
        </div>
        <div class="main-r">
          <h2>{{ productInfo.seriesTitle }}</h2>
          <p>
            {{ productInfo.seriesSubTitle }}
          </p>
          <section>{{ productInfo.coin }}积分</section>
          <div v-for="(item, index) in productInfo.parameterJson" :key="index">
            <h3>{{ item.title }}</h3>
            <ul>
              <li
                @click="tab(index)"
                :class="{ active: items.currentActivate }"
                v-for="(items, index) in item.parameters"
                :key="items.id"
              >
                {{ items.title }}
              </li>
            </ul>
          </div>
          <h3>数量</h3>
          <div class="stepper tanxin">
            <div @click="add" class="btn">+</div>
            <input type="text" v-model="steperNum" disabled />
            <div @click="sub" class="btn">-</div>
          </div>
          <div class="btns">
            <div @click="addToCart">加入购物车</div>
            <div class="buynow">立即购买</div>
          </div>
        </div>
      </main>
      <aside>
        <h2>你还可以兑换</h2>
        <div
          class="as tanxin"
          v-for="item in themYouCanBuy"
          :key="item.id"
          @click="$router.push(`/details/${item.id}`)"
        >
          <div class="img">
            <img :src="'https://sc.wolfcode.cn' + item.img" alt="" />
          </div>
          <div class="text">
            <p class="p1">叩丁狼定制帆布…</p>
            <p class="p2">400积分</p>
          </div>
        </div>
      </aside>
    </div>
    <div class="van">
      <div class="title">
        <p @click="con = true" :class="{ active: con }">商品详情</p>
        <p @click="con = false" :class="{ active: !con }">常见问题</p>
      </div>
      <div v-show="con" class="xq" v-html="productInfo.description"></div>
      <div v-show="!con" class="wenti">
        <h2>兑换后运费如何收取？</h2>
        <p>
          商城内大部分实物产品均可包邮，也支持上门自提。虚拟产品则无需运费，可在兑换后直接使用。
        </p>
        <p>
          （注：新疆，西藏，内蒙古，青海，海南，宁夏暂不支持包邮，在此地区兑换商品需提前与客服确认运费。）
        </p>
        <h2>如何申请退换货？</h2>
        <p>所有产品均为鸡腿兑换礼品，无质量问题不支持退换货；</p>
        <p>如因喜好不同，或到货后后悔等原因，不支持退货；</p>
        <p>
          因客户原因如联系方式有误、电话停机、不接电话、无理由拒收等造成快件无法正常签收的情况，叩丁狼均不进行补发或赔付；
        </p>
        <p>
          如因质量问题需要退货，将由客服人员与客户联系，确认邮寄地址与流程。退回物品不得有人为损坏或使用痕迹，否则拒绝退换；
        </p>
        <p>
          如顾客选择自行寄回商品，请先垫付运费，到货验证商品后，叩丁狼将以鸡腿发放形式为用户报销运费，不接受单方面到付件。
        </p>
        <h2>如何开具发票？</h2>
        <p>叩丁狼积分商城产品均为定制礼品，使用积分兑换的产品均不支持开票。</p>
        <h2>关于鸡腿价格问题</h2>
        <p>
          因可能存在系统缓存、页面更新延迟等不确定性情况，导致价格显示异常，商品具体售价请以订单结算页价格为准。如您发现异常情况出现，请立即联系我们补正，以便您能顺兑换。
        </p>
        <h2>联系我们</h2>
        <p>www.wolfcode.cn</p>
        <p>微信公众号搜索“叩丁狼”</p>
      </div>
    </div>
  </div>
</template>

<script>
import { GoodsDetilesApi, JionCartApi } from "@/request/api";
export default {
  data() {
    return {
      // 产品信息数据
      productInfo: {
        coverImg: "",
      },
      // 小图当前项
      smallimgindex: 0,
      // 步进器数量
      steperNum: 1,
      // 你还可以兑换数组
      themYouCanBuy: [],
      // 问题和商品详情切换
      con: true,
    };
  },
  created() {
    console.log(this.$route.params);
    let myid = this.$route.params;
    GoodsDetilesApi(myid).then((res) => {
      console.log(res);
      if (res.data.code === 0) {
        let { productInfo, themYouCanBuy } = res.data.data;
        this.productInfo = productInfo;
        this.themYouCanBuy = themYouCanBuy;
        this.productInfo.description = this.productInfo.description.replace(
          /upload/g,
          "http://sc.wolfcode.cn/upload"
        );
      }
    });
  },
  methods: {
    // 点击加入购物车
    addToCart() {
      JionCartApi({
        productId: this.$route.params.id,
        total: this.$store.state.cartNum,
        modified: 1,
      }).then((res) => {
        if (res.data.code === 401) {
          this.$store.dispatch("asyncclosetoast", {
            content: res.data.message,
            icon: "success",
          });
        } else if (res.data.code === 0) {
          this.$store.dispatch("asyncclosetoast", {
            content: "已添加到购物车",
            icon: "denger",
          });
          this.$store.state.cartTotal = res.data.data.total;
          this.$store.state.cartNum = 1;
        }
      });
    },
    // 点击小图大图跟着变
    sClick(index, src) {
      this.smallimgindex = index;
      this.productInfo.coverImg = src;
    },
    tab(index) {
      let a = this.productInfo.parameterJson[0].parameters;
      for (let i = 0; i < a.length; i++) {
        if (i == index) {
          a[i].currentActivate = true;
        } else {
          a[i].currentActivate = false;
        }
      }
    },
    add() {
      this.steperNum++;
    },
    sub() {
      if (this.steperNum > 1) {
        this.steperNum--;
      }
    },
  },
  watch: {
    "$route.params.id": {
      handler(nav, oav) {
        if (nav != oav) {
          this.$router.go(0);
        }
      },
    },
  },
};
</script>
 
<style lang = "less" scoped>
@import "../assets/base.less";
.content {
  min-height: 560px;
  main {
    width: 970px;
    border-right: 3px solid #ccc;
    box-sizing: border-box;
    padding-right: 49px;
    .mian-l {
      width: 459px;
      margin-right: 32px;
      .bigimg {
        width: 459px;
        margin-bottom: 21px;
        img {
          display: block;
        }
      }
      .smallimg {
        width: 459px;
        li {
          width: 100px;
          height: 100px;
          opacity: 0.6;
          box-sizing: border-box;
          &.active {
            opacity: 1;
            border: 2px solid red;
          }
        }
      }
    }
    .main-r {
      flex: 1;
      h2 {
        margin-top: 7px;
        font-size: 28px;
        color: #000000;
      }
      p {
        margin-top: 15px;
        font-size: 14px;
        color: #999999;
        line-height: 1.2;
        margin-bottom: 26px;
      }
      section {
        font-size: 28px;
        font-weight: bold;
        color: #fd604d;
        padding-bottom: 23px;
        border-bottom: 1px solid #ccc;
      }
      h3 {
        margin-top: 19px;
        margin-bottom: 14px;
        font-size: 16px;
        color: #000000;
        font-weight: bold;
      }
      ul {
        display: flex;
        flex-wrap: wrap;
        li {
          height: 32px;
          border: 1px solid #d1d1d1;
          color: #666666;
          line-height: 32px;
          padding: 0 17px;
          cursor: pointer;
          margin-right: 20px;
          margin-bottom: 11px;
          &.active {
            color: @blue;
            border-color: @blue;
          }
        }
      }
      .stepper {
        background: #fff;
        width: 105px;
        user-select: none;
        .btn {
          width: 30px;
          height: 32px;
          border: 1px solid #d1d1d1;
          text-align: center;
          box-sizing: border-box;
          line-height: 32px;
          color: #ccc;
          cursor: pointer;
        }
        input {
          width: 45px;
          border: 0;
          box-sizing: border-box;
          text-align: center;
          border-top: 1px solid #ccc;
          border-bottom: 1px solid #ccc;
        }
      }
      .btns {
        display: flex;
        margin-top: 24px;
        div {
          width: 150px;
          height: 46px;
          background: #3dc36b;
          font-size: 18px;
          color: #ffffff;
          line-height: 46px;
          text-align: center;
          cursor: pointer;
          margin-right: 19px;
          &.buynow {
            background: @orange;
          }
        }
      }
    }
  }
  aside {
    flex: 1;
    width: 230px;
    padding-left: 19px;
    box-sizing: border-box;
    padding-top: 6px;
    h2 {
      font-size: 18px;
      font-weight: 400;
      color: #333333;
    }
    .as {
      margin-top: 20px;
      cursor: pointer;
      .img {
        width: 80px;
        border: 1px solid transparent;
        margin-right: 10px;
        img {
          width: 80px;
        }
      }
      .text {
        flex: 1;
        .p1 {
          width: 111px;
          font-size: 14px;
          font-weight: 300;
          color: #666666;
          /* 超出一行变省略号 */
          text-overflow: ellipsis;
          overflow: hidden;
          /* 超出一行不换行 */
          white-space: nowrap;
          padding: 10px 0;
        }
        .p2 {
          font-size: 18px;
          font-weight: bold;
          color: #ff5e0f;
        }
      }
    }
  }
}
.van {
  margin-top: 53px;
  .title {
    border-top: 1px solid #ccc;
    display: flex;
    cursor: pointer;
    p {
      width: 120px;
      height: 50px;
      background: #fff;
      font-size: 18px;
      font-weight: bold;
      color: #ccc;
      line-height: 50px;
      text-align: center;
      &.active {
        color: #000000;
        background-color: #ececec;
      }
    }
  }
  .wenti {
    h2 {
      font-size: 18px;
      font-weight: 700;
      margin-top: 10px;
      margin-bottom: 10px;
    }
    p {
      line-height: 2;
      color: #000;
    }
  }
}
</style>